resumindo... eu troco meu arquivo exp.lua... por esse conteudo aí ... correto?
- Fórum
- OTServ
- Suporte
- Tópicos Sem Resposta
- [Encerrado] Pda Exp Reduzida Em Determinado Level
[Encerrado] Pda Exp Reduzida Em Determinado Level
Por rodrigoorgirdor, 29 de out. de 2012 em Tópicos Sem Resposta
info
Grupo: Artesão
Registrado: 28/09/12
Posts: 106
Reputação: +1

info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino

nao neh u,U
eh o creaturescript/scripts/pokeexp.lua
info
Grupo: Artesão
Registrado: 28/09/12
Posts: 106
Reputação: +1

kkk de boa, boiei aki.... vou testar aki
Deu Certo. porem quando o pokemon selvagem morre... da o seguinte erro ...
[30/10/2012 10:57:22] [Error - CreatureScript Interface]
[30/10/2012 10:57:22] data/creaturescripts/scripts/pokeexp.lua:onDeath
[30/10/2012 10:57:22] Description:
[30/10/2012 10:57:22] data/creaturescripts/scripts/pokeexp.lua:138: attempt to call global 'getLevel' (a nil value)
[30/10/2012 10:57:22] stack traceback:
[30/10/2012 10:57:22] data/creaturescripts/scripts/pokeexp.lua:138: in function <data/creaturescripts/scripts/pokeexp.lua:63>
info
Grupo: Conde
Registrado: 03/01/12
Posts: 884
Reputação: +233
Char no Tibia: Segredo

troca essa linha
doItemSetAttribute(corpse.uid, "level", getLevel(cid))
por essa
doItemSetAttribute(corpse.uid, "level", getPokemonLevel(cid))
info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino

notle, getLevel eh pra por o lvl atual do poke no corpse... ;x ta certo ali..
vc ta usando o serv sem lvl neh? como da pra ver.. aquele script eh pro serv COM lvl...
info
Grupo: Artesão
Registrado: 28/09/12
Posts: 106
Reputação: +1

to usando sem level
aki deu certinho ! resolvido aki vlw
info
Grupo: Conde
Registrado: 25/04/12
Posts: 752
Reputação: +125
Gênero: Masculino

Duvida sanada, reportado para moverem...
info
Grupo: Artesão
Registrado: 28/09/12
Posts: 106
Reputação: +1

pessoal... desculpem... dei uma bobeira gigante aki........ to até emcabulado ainda.. pensei ter visto o resultado ok hj pela manhã... mas agora fui testar novamente não deu certo... NÃO está diminuindo o xp nos intervalos 50, 75, 100, 125 ... mauz ae... alguem pode me ajudar?
eu devo criar novo tópico?
info
Grupo: Herói
Registrado: 28/11/10
Posts: 3.4k
Reputação: +585
Gênero: Masculino

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.




info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino
usa esse aki.. '--'
local balls = {11826, 11828, 11829, 11831, 11832, 11834, 11835, 11837,
11737, 11739, 11740, 11742, 11743, 11745, 11746, 11748}
local Exps = {
[{1, 49}] = 1,
[{50, 74}] = 0.8,
[{75, 99}] = 0.6,
[{100, 149}] = 0.5,
[{150, 199}] = 0.4,
}
--2798 -normal- //
local function playerAddExp(cid, exp)
doPlayerAddExp(cid, exp)
doSendAnimatedText(getThingPos(cid), exp, 215)
end
local function calculaExp(cid, expTotal)
if not isPlayer(cid) then return 0 end
local expFinal = expTotal
for lvl, exp in pairs(Exps) do
if getPlayerLevel(cid) >= lvl[1] or getPlayerLevel(cid) <= lvl[2] then
expFinal = expFinal * exp
break
end
end
if expFinal == expTotal then expFinal = expFinal * 0.1 end --lvl 200+
return math.floor(expFinal)
end
local function giveExpToPlayer(pk, expTotal, givenexp, expstring) --alterado v2.7
playerAddExp(pk, expTotal)
local firstball = getPlayerSlotItem(pk, 8)
if not isInParty(pk) and firstball and getItemAttribute(firstball.uid, expstring) and getItemAttribute(firstball.uid, expstring) > 0 then
local percent = getItemAttribute(firstball.uid, expstring) <= 1 and getItemAttribute(firstball.uid, expstring) or 1
local gainexp = math.ceil(percent * givenexp)
doItemSetAttribute(firstball.uid, expstring, 0)
givePokemonExp(pk, firstball, expTotal) --alterado v2.7
elseif isInParty(pk) and firstball.uid ~= 0 then
givePokemonExp(pk, firstball, expTotal*3) --alterado v2.7
end
for b = 1, #balls do
local pokes = getItemsInContainerById(getPlayerSlotItem(pk, 3).uid, balls)
if #pokes >= 1 then
for _, uid in pairs (pokes) do
if not isInParty(pk) and getItemAttribute(uid, expstring) and getItemAttribute(uid, expstring) > 0 then
local percent = getItemAttribute(uid, expstring) <= 1 and getItemAttribute(uid, expstring) or 1
local gainexp = math.ceil(percent * givenexp)
doItemSetAttribute(uid, expstring, 0)
givePokemonExpInBp(pk, uid, gainexp, balls) --alterado v2.7
elseif isInParty(pk) and getItemAttribute(uid, expstring) and getItemAttribute(uid, expstring) > 0 then
givePokemonExpInBp(pk, uid, expTotal*3, balls)
end
end
end
end
end
function onDeath(cid, corpse, deathList)
--if not isCreature(cid) then return true end
if isSummon(cid) or not deathList or corpse.itemid == 0 or getCreatureName(cid) == "Evolution" then return true end
-------------Edited Golden Arena------------------------- --alterado v2.7 \/\/
if getPlayerStorageValue(cid, 22546) == 1 then
setGlobalStorageValue(22548, getGlobalStorageValue(22548)-1)
doItemSetAttribute(corpse.uid, "golden", 1)
end
if getPlayerStorageValue(cid, 22546) == 1 and getGlobalStorageValue(22548) <= 0 then
local wave = getGlobalStorageValue(22547)
for _, sid in ipairs(getPlayersOnline()) do
if isPlayer(sid) and getPlayerStorageValue(sid, 22545) == 1 then
if getGlobalStorageValue(22547) < #wavesGolden+1 then
doPlayerSendTextMessage(sid, 21, "Wave "..wave.." will begin in "..timeToWaves.."seconds!")
doPlayerSendTextMessage(sid, 28, "Wave "..wave.." will begin in "..timeToWaves.."seconds!")
addEvent(creaturesInGolden, 100, GoldenUpper, GoldenLower, false, true, true)
addEvent(doWave, timeToWaves*1000)
elseif getGlobalStorageValue(22547) == #wavesGolden+1 then
doPlayerSendTextMessage(sid, 20, "You have win the golden arena! Take your reward!")
doPlayerAddItem(sid, 2152, getPlayerStorageValue(sid, 22551)*2) --premio
setPlayerStorageValue(sid, 22545, -1)
doTeleportThing(sid, getClosestFreeTile(sid, posBackGolden), false)
setPlayerRecordWaves(sid)
end
end
end
if getGlobalStorageValue(22547) == #wavesGolden+1 then
endGoldenArena()
end
end
--------------------------------------------------- /\/\
local givenexp = getWildPokemonExp(cid)
local expstring = ""..cid.."expEx"
if givenexp > 0 then
for a = 1, #deathList do
local pk = deathList[a]
if isCreature(pk) then
local list = getSpectators(getThingPosWithDebug(pk), 30, 30, false)
local expTotal = math.floor(playerExperienceRate * givenexp * getDamageMapPercent(pk, cid))
expTotal = calculaExp(pk, expTotal)
local party = getPartyMembers(pk)
if isInParty(pk) and getPlayerStorageValue(pk, 4875498) <= -1 then
expTotal = math.floor(expTotal/#party) --alterado v2.6.1
for i = 1, #party do
if isInArray(list, party) and getDamageMapPercent(party, cid) > 0 then --alterado v2.8
giveExpToPlayer(party, expTotal, givenexp, expstring)--alterado v2.7
end
end
else
giveExpToPlayer(pk, expTotal, givenexp, expstring) --alterado v2.7
end
end
end
end
if isNpcSummon(cid) then
local master = getCreatureMaster(cid)
doSendMagicEffect(getThingPos(cid), getPlayerStorageValue(cid, 10000))
doCreatureSay(master, getPlayerStorageValue(cid, 10001), 1)
doRemoveCreature(cid)
return false
end
doItemSetAttribute(corpse.uid, "offense", getPlayerStorageValue(cid, 1011))
doItemSetAttribute(corpse.uid, "defense", getPlayerStorageValue(cid, 1012))
doItemSetAttribute(corpse.uid, "speed", getPlayerStorageValue(cid, 1013))
doItemSetAttribute(corpse.uid, "vitality", getPlayerStorageValue(cid, 1014))
doItemSetAttribute(corpse.uid, "spattack", getPlayerStorageValue(cid, 1015))
doItemSetAttribute(corpse.uid, "level", getLevel(cid))
doItemSetAttribute(corpse.uid, "gender", getPokemonGender(cid))
return true
end